package net.oschina.arvin.sqlbuilder.definition;

import net.oschina.arvin.sqlbuilder.WhereBuilder;
import net.oschina.arvin.sqlbuilder.enums.CompareType;

import java.lang.reflect.Field;

/**
 * @author Arvin
 * @time 2017/11/17 16:47
 */
public interface ConditionItem {

    /**
     * 返回是否进行了追加
     *
     * @param queryCondition 查询条件对象
     * @param whereBuilder   Where子句构造器
     * @param compareType    比较类型，如果为null的话使用默认的规则获取比较类型
     * @return 返回是否进行了追加
     */
    boolean appendToWhereBuilder(Object queryCondition, WhereBuilder whereBuilder, CompareType compareType);

    /**
     * 获取查询条件的字段
     *
     */
    Field getQueryConditionField();
}
